PostgreSQL 数据库性能 kreplay

1 背景知识

kreplayPostgreSQL 数据库流式的负载重放工具。

  1. 重放工具通常使用 PostgreSQL 的查询日志,在另外一台 PostgreSQL 数据库上进行负责重放。
  2. kreplay 可以在长时间测试新的 PostgreSQL 版本数据库场景。

1.1 什么是数据流(Data Flow)

  1. PostgreSQL 配置日志保存为 csv 格式,csv 日志中包含所有查询。
  2. fluentd 实例将会监控此 csv 文件,并将解析处得内容发送到 Kafka。每个数据库的查询都会按照主题进行分类。
  3. 每个数据库都会运行一个 kreplay 实例,并根据不同的主题,在目标端的 PostgreSQL 实例上负载重放。

1.2 kreplay 的功能

  1. 负载重放时保持 csv 日志文件中的原始顺序。
  2. 每个会话都在目标实例单独的链接中重放。
  3. 所以源端上的事务语句和目标会话的事务语句完全相同。

1.3 kreplay 注意事项

  1. 吞吐量有上限:每个 kreplay 实例都只能在单线程中运行,保持事务顺序的一致。

2 kreplay 实战

  1. kreplay 安装与配置

  2. kreplay 负载重放

  3. kreplay 性能分析

3 参考链接

kreplay/README.md at master · rvenkatesh25/kreplay